package com.maas.util.mybatis.jpa.littlenb.annotation.mapper;

import com.littlenb.mybatisjpa.type.SelectorStrategy;

import java.lang.annotation.*;

/**
 * @deprecated
 * 修改自mybatis-jpa
 * mapper 内方法的注解
 * 使其支持SelectStatementFactory
 * 传入参数不能为string
 * @author zxm
 **/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface SelectCountDefinition {

  /**
  1. IGNORE_NULL
  * @SelectDefinition( where   此时where 无效 。。。

  2. CERTAIN
  * 如userId 查询
  * @SelectDefinition( where ="userId = #{"+ Constant.CERTAINTY_ENTITY_KEY+".userId}" 。。。

  *  不限制查询字段
  * @SelectDefinition( where ="" 。。。

  3.SelectorStrategy.NONE
  *  不限制查询字段
  * @SelectDefinition( where ="userId = #{userId}" 。。。
  */

  SelectorStrategy strategy() default SelectorStrategy.NONE;

  /**
   * default id = #{id}
   *
   */
  String where() default "id = #{id}";

  /**
   * default id = #{id}
   */
  String order() default "id desc";


  /**
   * 从 mybatis-jpa-jack 移植过来的
   * 持久化Entity类型
   * @return
   */
  Class<?> domainClass();
}
